# 函数
# 定义
'''
def 函数名(参数1,参数2):
....函数体
....函数体
....函数体
....函数体
....return 返回值
'''


# 定义一个函数：求N的阶乘
# 参数：N
# 返回值：直接打印
def jieCheng(N):
    result = 1
    while N >= 1:
        result *= N
        N -= 1
    print(result)


# 调用：函数名(参数)
jieCheng(3)
jieCheng(4)


# 递归函数
# 1、自己调用自己
# 2、有停止条件

def jieCheng2(N):
    if N == 1:
        return 1
    return N * jieCheng2(N - 1)


print(jieCheng2(4))
'''
jieCheng2(4) -> 4 * jieCheng2(3)
                        -> 3 * jieCheng2(2)
                                -> 2 * jieCheng2(1)
                                        -> 1
'''


# lambda 表达式
# 实际上是函数的简化
# 定义一个函数：x的y次方
# 参数：x，y
# 返回值：x**y

def ciFang(x, y):
    return x ** y


print(ciFang(2, 3))

func1 = lambda x, y: x ** y
print(func1(3, 4))
